package samsung.sds.system.common.baseQuery;

import java.util.List;

import samsung.sds.system.common.baseQuery.model.PageData;
import samsung.sds.system.common.model.QueryParam;

public interface BaseServiceInterface<T> {
	
	/**
	 * 根据属性值查找实体
	 * @param t
	 * @return
	 * 返回查询结果实体，若查无结果，返回null
	 */
	T findUniqueByProperty(T t);
	
	/**
	 * 根据ID查找实体
	 * @param id
	 * @return
	 * 返回查询结果实体，若查无结果，返回null
	 */
	T findEntityById(String id);
	
	
	
	
	 
	/**
	 * 插入实体
	 * @param t
	 * @return 成功返回1
	 */
	int insertEntity(T t);

	/**
	 * 更新实体
	 * @param t
	 * @return 成功返回1
	 */
	int updateEntity(T t);
	
	/**
	 * 删除实体
	 * @param id
	 * @return 成功返回1
	 */
	int deleteEntityById(String id);
	
	/**
	 * 删除实体
	 * @param t
	 * @return 成功返回1
	 */
	int deleteEntity(T t);
	
	/**
	 * 带分页的查询
	 * @param page
	 * @return
	 */
	PageData<T> queryListPage(QueryParam param) ; 
	
	/**
	 * 不带分页查询
	 * @param param
	 * @return
	 */
	List<T> queryList(QueryParam param);
}
